跳到主要内容

发布到 GooglePlay

GooglePlay 平台是很多开发者在海外发布游戏的第一选择。

本文将介绍如何将白鹭引擎开发的游戏通过 Egret Native 发布到 GooglePlay 平台。

发布前期准备

  1. 科学上网,登录 GooglePlay 需要翻墙
  2. 一张支持境外支付的 Visa 卡用来支付注册的25美金
  3. 建议使用最新版 Chrome 浏览器来进行整体的发布流程

打包 Android App

使用 Egret Native 生成一个 Android 项目,在 Android Studio 中发布为 aab 格式,而非 apk 格式

.aab格式为发布 GooglePlay 的专用格式,全名为 Android App Bundle,您可以在 https://developer.android.com/guide/app-bundle/test#generate_apks 上了解更多 aab 格式的内容(需要科学上网)。

如果项目要输出 aab 格式的包,需要满足两个条件:

  • Android Studio 3.2 以上版本
  • gradle 版本要大于:3.2.1,比如:classpath 'com.android.tools.build:gradle:3.2.1'

当满足如上设置后,在 Android Studio 中,单击菜单上的 Build -> Generate Signed Bundle / APK,并在弹出菜单中选择 Android App Bundle 即可。

注册开发者账号

注册并登陆 GooglePlay 开发者账号,链接是 https://play.google.com/apps/publish/signup/  

需要注意的是 在支付25美金的时候,Chrome 浏览器登录账号一定和你刚才注册的 GooglePlay 账号是同一个 否则可能会出现无法支付的问题

发布流程

进入平台后,见到右上角有一个创建应用,点击进入创建应用流程

在这个页面中会看到左边这几项有灰色对勾,点开应用版本上传打包好的应用,按照提示依次解决应用检查出现的问题

权限检查错误

您的应用的 APK 请求“android.permission.READ_PHONE_STATE”权限。应用若要在 APK 中使用这些权限,必须设置隐私权政策。 如果您的应用的目标受众群体包括未满 13 周岁的儿童,那就必须添加隐私权政策

如果您遇到该错误,可以用以下两种方式任选一种解决:

  1. 提供一个架设在海外服务器上的静态隐私声明页面,并在 GooglePlay 的并在商品详情选项最后填充该网页地址。
  2. 修改 Egret Native 生成的 AndroidManifest.xml 文件,具体修改方式请见后续小节:权限配置

64位应用错误

此版本不符合 Google Play 关于提供 64 位版本应用的规定 以下 APK 或 App Bundle 面向 64 位设备,但只有 32 位原生代码:1。 请向应用中添加 64 位和 32 位原生代码。您可以使用 Android App Bundle 发布格式来自动确保每种设备架构仅接收所需要的原生代码。这样可避免增加应用的总大小。

如果您遇到该错误,则需要在打包的时候补充64位的支持。请修改工程App对应build.gradle 文件,添加如下属性


{

ndk {

abiFilters 'armeabi-v7a','arm64-v8a'

}

}


上传完项目并校验通过,此时应用版本检查,右下角的发布按钮还是灰色不能发布,进入商品详情填充和内容分级阶段。

每满足一项内容,对应选项的灰色对勾会变成绿色,当所有带灰色对勾的选项变成绿色以后,此时重新点开应用版本查看对应的项目,发布按钮将会解锁点击进入审核期,如无意外项目将会正常发布。

附:权限配置

GooglePlay 权限检查相关内容

由于 Egret Native 1.0.1 以前的版本 egret.arr 中的 AndroidManifest.xml 中没有显式声明 targetSdkVersion ,这会导致工具会自动添加三个权限

  • android.permission.READ_PHONE_STATE
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.READ_EXTERNAL_STORAGE

解决方案:

  1. Egret Native 1.0.2 版本解决了这个问题,升级即可
  2. 开发者可以在AndroidManifest.xml 中添加相应权限的主动删除

<uses-permission

android:name="android.permission.READ_PHONE_STATE"

tools:node="remove" />


如遇到 tools 无法识别显示为红色,则: 需要在应用的 AndroidManifest.xml(不是上文中提到的 egret.arr 的 AndroidManifest.xml) 的跟节点中添加如下内容:


<manifest xmlns:android="http://schemas.android.com/apk/res/android"

xmlns:tools="http://schemas.android.com/tools"

package="org.egret.example"\>